//1. 导入数据库
const mysql = require('mysql');
const { use } = require('../2.6-express/12编写接口/02.apiRouter');
// npm i mysql@2.18.1

//2.连接数据库
const db = mysql.createPool({
        host: '127.0.0.11',
        user: 'root',
        password: 'admin123',
        database: 'student'
    })
    // 测试连接
    // console.log(11);
    // db.query('select 1', (err, result) => {
    //     if (err) return console.log('连接错误' + err.message);
    //     console.log(result);
    // })


// const sqlstr = 'select * from users ';
// db.query(sqlstr, (err, result) => {
//         if (err) return console.log('连接错误' + err.message);
//         console.log(result[0]);
//     })
//查询数据 返回的是数组
/* 结果[
    RowDataPacket { ID: 3, name: '张学友', password: 'A-101-1', status: 1 }, 
    RowDataPacket { ID: 13, name: '李金周', password: 'A-102-1', status: 0 },
    RowDataPacket { ID: 15, name: '叶发展', password: 'A-102-4', status: 0 },
    RowDataPacket { ID: 17, name: '孟磊', password: 'A-102-2', status: 0 }   
  ]
   */

//插入数据
// const user = { name: '李金周56', age: 70, password: 'A-102' };
// const sqlStr = 'insert into users (name,age,password) values(?,?,?)'
// db.query(sqlStr, [user.name, user.age, user.password], (err, results) => {
//     if (err) return console.log(err.message);
//     //执行插入语句 则result 是对象 
//     // 通过results.affectedRows === 1  来判断是否成功
//     // console.log(results);
//     if (results.affectedRows === 1) {
//         console.log('数据插入成功');
//     }
// })

// //插入数据简写
// const user = { name: '叶发展', password: 'A-102-4' };
// const sqlStr = 'insert into users set ?';
// db.query(sqlStr, user, (err, results) => {
//     if (err) return console.log(err.message);
//     if (results.affectedRows === 1) {
//         console.log('数据插入成功');
//     }
// })

//定义代插入数据
// const user = {name: '孟磊1',password: 'A-102-2'}
//     //定义sql语句
// const sqlStr = 'insert into users set ?';
// db.query(sqlStr, user, (err, results) => {
//     //判断是否插入成功
//     if (err) return console.log(err.message);
//     if (results.affectedRows === 1) console.log('数据插入成功');
// });

//更新数据

// //1. 定义用户数据
// const user = { ID: 1, name: '张可顺', password: 'A-102-3' };
// //2. 定义sql语句
// const sqlStr = 'update users set name=?,password=? where ID=?';
// //3. 执行数据
// db.query(sqlStr, [user.name, user.password, user.ID], (err, results) => {
//     if (err) return console.log(err.message);
//     if (results.affectedRows === 1) console.log('更新成功');
// })

//更新数据的简单方式
//1.定义用户数据
// const user = { ID: 3, name: '张学友', password: 'A-101-1' };
// //2. 定义sql语句
// const sqlStr = 'update users set ? where ID=?';
// //3. 执行数据
// db.query(sqlStr, [user, user.ID], (err, results) => {
//     if (err) return console.log(err.message);
//     if (results.affectedRows === 1) console.log('更新成功');
// })

// //封装为函数
// //1.定义用户数据
// const user1 = { ID: 3, name: '张学友', password: 'A-101-1' };
// // //2. 定义sql语句
// const sqlStr1 = 'update users set ? where ID=?';

// function Update(sqlStr, user) {
//     db.query(sqlStr, [user1, user1.ID], (err, result) => {
//         if (err) return console.log(err.message);
//         if (results.affectedRows === 1) console.log('更新成功');
//     })
// }


// //删除数据
// const user2 = { ID: 1 };
// const sqlString = 'delete from users where ID=?';
// db.query(sqlString, user2.ID, function(err, result) {
//     if (err) return console.log(err.message);
//     if (result.affectedRows === 1) { console.log('删除成功'); }

// })
//标记删除  即更改status信息 1 为删除
// const sqlString = 'update users set status=? where id=?';
// db.query(sqlString, [1, 3], function(err, result) {
//         if (err) return console.log(err.message);
//         if (result.affectedRows === 1) { console.log('修改成功'); }
//     })
//封装为函数
function remove(sqlStr, user = {}) {
    db.query(sqlStr, user.ID, (err, result) => {
        if (err) return console.log('失败' + err.message);
        if (result.affectedRows === 1) { console.log('删除成功'); }
    })
}
const sqlStr = 'delete from users where ID=40'
remove(sqlStr)